Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Rendered • View rawDownload


README.md massive-changes (a914d68e) Text, 10.15 KB

Reticulum MeshChatX

│ [!IMPORTANT] v4 coming soon with release builds for Linux and Windows (Appimage and EXE
│ portable/installer). As well as updated container images and wheel packages. You can test v4
│ using container by replacing normal image with T383838git.quad4.io/rns-things/meshchatx-dev:dev

Contact me for any issues or ideas:

T282828
LXMF: 7cc8d66b4f6a0e0e49d34af7f6077b5a

![CI](https://git.quad4.io/RNS-Things/MeshChatX/actions/workflows/ci.yml)
![Tests](https://git.quad4.io/RNS-Things/MeshChatX/actions/workflows/tests.yml)
![Build](https://git.quad4.io/RNS-Things/MeshChatX/actions/workflows/build.yml)
![Docker](https://git.quad4.io/RNS-Things/MeshChatX/actions/workflows/docker.yml)

A Reticulum MeshChat fork from the future.

<video src="https://strg.0rbitzer0.net/raw/62926a2a-0a9a-4f44-a5f6-000dd60deac1.mp4" controls="controls" style="max-width: 100%;"></video>

This project is separate from the original Reticulum MeshChat project, and is not affiliated with the original project.

│ [!WARNING] Backup your reticulum-meshchat folder before using! MeshChatX will attempt to
│ auto-migrate whatever it can from the old database without breaking things, but it is best to
│ keep backups.

Goal

To provide everything you need for Reticulum, LXMF, and LXST in one beautiful and feature-rich application.

• Desktop app (Linux, Windows, macOS)
• Self-host on your server easily with or without containers
• Mobile app (one can dream)
• Reliable, secure, fast and easy to use.

Note on macOS: You will need to manually build or use containers since I do not have a macOS machine or runner.

Quick Start (Docker - Recommended)

The easiest way to get MeshChatX running is using Docker. Our official image is multi-arch and supports T383838linux/amd64 and T383838linux/arm64 (Raspberry Pi, etc.).

T282828
T8b949e# Pull and run the latest image
docker pull git.quad4.io/rns-things/meshchatx:latest

T8b949e# Run MeshChatX in a Docker container
docker run -d Tffea00\
--nameTff7b72=meshchatx Tffea00\
-p T79c0ff8000:8000 Tffea00\
-v Te6edf3$PWD/storage:/app/storage Tffea00\
-v Te6edf3$PWD/public:/app/public Tffea00\
T8b949e# --network=host \ # Uncomment for autointerface support
git.quad4.io/rns-things/meshchatx:latest

T8b949e# Or use Docker Compose for an even easier setup
docker compose up -d


Check releases for pre-built binaries (AppImage, DEB, EXE) if you prefer standalone apps. (coming soon)

Major Features

Full LXST Support: Custom voicemail, phonebook, contact sharing, and ringtone support.
Interface Discovery and auto-connecting - Discover interfaces, auto-connect or connect to trusted ones, map them all!
Multi-Identity: Switch between multiple Reticulum identities seamlessly.
Modern UI/UX: A completely redesigned, intuitive interface.
Integrated Maps: OpenLayers with MBTiles support for offline maps.
Security: Read more about it in the Security section.
Offline Docs: Access Reticulum documentation without an internet connection.
Expanded Tools: Includes dozens of more tools.
Page Archiving: Built-in crawler and browser for archived pages offline.
Banishment: Banish LXMF users, Telephony, and NomadNet Nodes.
i18n: Support for English, German, Italian, and Russian.

Screenshots

<details>
<summary>Telephony & Calling</summary>

Phone
Active Call
Call Ended
Voicemail
Ringtone Settings


</details>

<details>
<summary>Networking & Visualization</summary>

Network Visualiser


</details>

<details>
<summary>Page Archives</summary>

Archives Browser
Viewing Archived Page


</details>

<details>
<summary>Tools & Identities</summary>

Tools
Identity Management


</details>

Pipx / Global Installation

If you prefer to install MeshChatX globally using T383838pipx, pip or uv, you can do so directly from the repository. However, you must specify the path to your built frontend files using the T383838--public-dir flag or T383838MESHCHAT_PUBLIC_DIR environment variable, as the static files are not bundled with the source code. The release .whl packages include the built frontend files and also there is a seperate frontend zip to grab and use.

1. Install MeshChatX:

T282828
pipx install git+https://git.quad4.io/RNS-Things/MeshChatX

2. Run with Frontend Path:
T282828
T8b949e# Replace /path/to/MeshChatX/meshchatx/public with your actual path
meshchat --public-dir /path/to/MeshChatX/meshchatx/public


Manual Installation (From Source)

If you want to run MeshChatX from the source code locally:

1. Clone the repository:

T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX
Tffa657cd MeshChatX


2. Build the Frontend:
Requires Node.js and pnpm.

T282828
corepack Tffa657enable
pnpm install
pnpm run build-frontend


3. Install & Run Backend:
Requires Python 3.10+ and Poetry.
T282828
pip install poetry
poetry install
poetry run meshchat --headless --host T79c0ff127.0.0.1


Configuration

MeshChatX can be configured via command-line arguments or environment variables.

┌───────────────┬──────────────────────┬───────────┬──────────────────────┐
│ Argument │ Environment Variable │ Default │ Description │
├───────────────┼──────────────────────┼───────────┼──────────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Web server address │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Web server port │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ Disable HTTPS │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Don't launch browser │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Enable basic auth │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Data directory │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ - │ Frontend files path │
└───────────────┴──────────────────────┴───────────┴──────────────────────┘

Development

We use Task for automation.

┌─────────────────────────────┬────────────────────────────────────────────────┐
│ Task │ Description │
├─────────────────────────────┼────────────────────────────────────────────────┤
│ T383838task install │ Install all dependencies │
│ T383838task run │ Run the application │
│ T383838task dev │ Run the application in development mode │
│ T383838task lint │ Run all linters (Python & Frontend) │
│ T383838task lint-python │ Lint Python code only │
│ T383838task lint-frontend │ Lint frontend code only │
│ T383838task format │ Format all code (Python & Frontend) │
│ T383838task format-python │ Format Python code only │
│ T383838task format-frontend │ Format frontend code only │
│ T383838task test │ Run all tests │
│ T383838task test:cov │ Run tests with coverage reports │
│ T383838task test-python │ Run Python tests only │
│ T383838task test-frontend │ Run frontend tests only │
│ T383838task build │ Build frontend and backend │
│ T383838task build-frontend │ Build only the frontend │
│ T383838task wheel │ Build Python wheel package │
│ T383838task compile │ Compile Python code to check for syntax errors │
│ T383838task build-docker │ Build Docker image using buildx │
│ T383838task run-docker │ Run Docker container using docker-compose │
│ T383838task build-appimage │ Build Linux AppImage │
│ T383838task build-exe │ Build Windows portable executable │
│ T383838task build-electron-linux │ Build Linux Electron app │
│ T383838task build-electron-windows │ Build Windows Electron apps │
│ T383838task android-prepare │ Prepare Android build │
│ T383838task android-build │ Build Android APK │
│ T383838task build-flatpak │ Build Flatpak package │
│ T383838task clean │ Clean build artifacts and dependencies │
└─────────────────────────────┴────────────────────────────────────────────────┘

Security

ASAR Integrity (Stable as of Electron 39)
• Built-in automatic integrity checks on all files (frontend and backend)
• HTTPS by default (automated locally generated certs)
• Redundant CORS protection (loading.html, python backend server, electron main.js)
• Updated dependencies and daily scanning (OSV)
• Container image scanning (Trivy)
• SBOM for dependency observability and tracking
• Extensive testing and fuzzing.
• Rootless docker images
• Pinned actions and container images (supply chain security and deterministic builds)

Credits

Liam Cottle - Original Reticulum MeshChat
Marqvist - Reticulum, LXMF, LXST


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────